home *** CD-ROM | disk | FTP | other *** search
/ Sound Fx / Sound Fx.iso / Software / UNZIPED / DWSTK / FINDSB.C < prev    next >
C/C++ Source or Header  |  1996-10-10  |  3KB  |  108 lines

  1. /******************************************************************************
  2. File:          findsb.c
  3. Version:     2.22
  4. Tab stops: every 2 columns
  5. Project:     FINDSB utility
  6. Copyright: 1994-1995 DiamondWare, Ltd.    All rights reserved.
  7. Written:     Keith Weiner & Erik Lorenzen
  8. Purpose:     Example code to autodetect and print out the sound hardware
  9. History:     94/10/21 KW        Started
  10.                      95/02/01 KW/EL Finalized
  11.                      95/03/22 EL        Finalized for 1.01
  12.                      95/04/11 EL        Finalized for 1.02
  13.                      95/06/13 EL        Finalized for 1.03, no changes
  14.                      95/06/16 EL        Finalized for 2.00, no changes
  15.                      95/10/05 EL        Finalized for 2.10, added modual support for err_
  16.                      95/10/18 EL        Finalized for 2.20, no changes
  17.                      95/10/18 EL        Finalized for 2.21, no changes
  18.                      96/10/10 EL        Finalized for 2.22, no changes
  19. ******************************************************************************/
  20.  
  21.  
  22.  
  23. #include <stdio.h>
  24. #include <stdlib.h>
  25.  
  26. #include "dws.h"
  27. #include "err.h"
  28.  
  29.  
  30.  
  31. void main(void)
  32. {
  33.     dws_DETECTOVERRIDES dov;
  34.     dws_DETECTRESULTS     dres;
  35.  
  36.     printf("\nFINDSB 2.22 is Copyright 1994-95 DiamondWare, Ltd.\n");
  37.     printf("All rights reserved.\n\n\n");
  38.  
  39.     /*
  40.      . We need to set every field to -1 in dws_DETECTOVERRIDES struct;
  41.      . this tells the STK to autodetect everything.  Any other value
  42.      . overrides the autodetect routine, and will be accepted on
  43.      . faith, though the STK will verify it if possible.
  44.     */
  45.     dov.baseport = (word)-1;
  46.     dov.digdma     = (word)-1;
  47.     dov.digirq     = (word)-1;
  48.  
  49.     if (!dws_DetectHardWare(&dov, &dres))
  50.     {
  51.         err_Display(dws_ErrNo(), err_DWS);
  52.         exit(-1);
  53.     }
  54.  
  55.     /* Test for FM or DIG */
  56.     if ((dres.capability & dws_capability_FM) ||
  57.             ((dres.baseport != 0x388) && (dres.baseport != (word)-1)))
  58.     {
  59.         printf("Base port is %x hex.\n\n", dres.baseport);
  60.  
  61.         if (dres.mixtyp > 1)
  62.         {
  63.             printf("The sound hardware supports mixing.\n\n");
  64.         }
  65.         else
  66.         {
  67.             printf("Mixing will be done in software.\n\n");
  68.         }
  69.  
  70.         if (dres.capability & dws_capability_FM)
  71.         {
  72.             printf("The sound hardware supports FM music playback.\n\n");
  73.         }
  74.         else
  75.         {
  76.             printf("Support for FM music playback not found.\n\n");
  77.         }
  78.  
  79.         if (dres.capability & dws_capability_DIG)
  80.         {
  81.             /* If we got here dws_DetectHardWare got PORT, IRQ, & DMA */
  82.             printf("The sound hardware supports digitized sound playback.\n\n");
  83.             printf("The sound hardware uses DMA channel %d and IRQ level %d.\n\n",
  84.                          dres.digdma, dres.digirq);
  85.         }
  86.         else if ((dres.baseport != 0x388) && (dres.baseport != (word)-1))
  87.         {
  88.             /*
  89.              . If dres.baseport isn't either 388hex, or -1, then it's a valid
  90.              . baseport.    So if we got here, then we didn't find either IRQ
  91.              . level, and/or DMA channel.  In order to play digitized sounds,
  92.              . we need these settings as well.    In your application, you should
  93.              . ask the user.
  94.             */
  95.             printf("The sound hardware supports digitized sound playback,\n");
  96.             printf("but we couldn't find the DMA channel and/or IRQ level.\n\n");
  97.         }
  98.         else
  99.         {
  100.             printf("Support for digitized playback not found.\n\n");
  101.         }
  102.     }
  103.     else
  104.     {
  105.         printf("No sound hardware detected.\n\n");
  106.     }
  107. }
  108.